
package parser;

import java.util.Iterator;

import lexer.Token;
import parser.exception.ParsingException;

/**
 * Parser con traducción dirigida por la sintaxis.
 */
public interface Parser {
	
	/**
	 * Parsea una cadena de tokens sintetizando el
	 * resultado de tipo T con el translator.
	 */
	<T> T parse(Iterator<Token> input, SyntaxTranslator<T> translator)
		throws ParsingException;
	
}


